#ifndef CALENDAR_H
#define CALENDAR_H

#include "lvgl/lvgl.h"
#include <stdbool.h>

// 老黄历数据结构体
typedef struct {
    // 基本日期信息
    char id[16];                // 编号，由年月日组成
    char ynian[8];              // 阳历年
    char yyue[4];               // 阳历月
    char yri[4];                // 阳历日
    char xingqi[8];             // 中文星期几
    char xingzuo[16];           // 星座
    
    // 阴历信息
    char nnian[16];             // 阴历年中文
    char nyue[16];              // 阴历月中文
    char nri[8];                // 阴历日中文
    
    // 干支信息
    char ganzhinian[8];         // 年干支
    char ganzhiyue[8];          // 月干支
    char ganzhiri[8];           // 日干支
    
    // 节气物候
    char jieqi[16];             // 节气
    char jieqimsg[64];          // 24节气描述
    char wuhou[32];             // 物候
    char shujiu[32];            // 数九
    char fu[32];                // 三伏
    
    // 星宿吉凶
    char xiu[8];                // 二十八星宿
    char xiuanimal[8];          // 二十八星宿动物
    char xiuluck[8];            // 二十八星宿吉凶
    char xiusong[256];          // 二十八星宿歌诀
    
    // 方位信息
    char taishen[32];           // 本日胎神
    char daypositionxi[16];     // 喜神方位
    char xiangchong[32];        // 相冲
    
    // 宜忌
    char yi[128];               // 每日宜
    char ji[128];               // 每日忌
    char dayjishen[128];        // 吉神宜趋
    char dayxiongsha[128];      // 凶神宜忌
    
    // 彭祖百忌
    char pengzu[128];           // 彭祖百忌
    
    // 其他信息
    char daytianshen[16];       // 十二天神
    char daytianshenluck[8];    // 天神吉凶
    char zhixing[8];            // 值星（建除十二神）
    char yuexiang[16];          // 当天月相
    char jijie[8];              // 季节
    char nianwuxing[16];        // 年五行
    char yuewuxing[16];         // 月五行
    char riwuxing[16];          // 日五行
    
    bool is_valid;              // 数据是否有效
} calendar_data_t;

// 老黄历页面函数声明
void create_calendar_screen(void);
void cleanup_calendar_ui(void);
bool fetch_calendar_data(calendar_data_t *data);
void update_calendar_display(const calendar_data_t *data);

// 全局变量声明
extern lv_obj_t *calendar_screen;

#endif // CALENDAR_H
